// samsting : this file is auto create.

#include "Oms/2015-02-12/GetProductDefineResponse.h"

namespace aliyun { namespace Oms {

GetProductDefineResponse::GetProductDefineResponse() {
}

const std::vector<Field>& GetProductDefineResponse::Product::Type::GetFields(void) const {
  return Fields_;
}

const string& GetProductDefineResponse::Product::Type::GetDataType(void) const {
  return DataType_;
}

const std::vector<GetProductDefineResponse::Product::Type>& GetProductDefineResponse::Product::GetTypeList(void) const {
  return TypeList_;
}

const string& GetProductDefineResponse::Product::GetProductName(void) const {
  return ProductName_;
}

const std::vector<GetProductDefineResponse::Product>& GetProductDefineResponse::GetProductList(void) const {
  return ProductList_;
}

const string& GetProductDefineResponse::GetProductName(void) const {
  return ProductName_;
}

const string& GetProductDefineResponse::GetDataType(void) const {
  return DataType_;
}

const char* GetProductDefineResponse::BaseKey(void) {
  return "GetProductDefineResponse";
}

void GetProductDefineResponse::UnmarshallerMap(std::map<string, string>& response_map) {
  int ProductList__length = 0;
  UnmarshallerInt(ProductList__length, response_map, "GetProductDefineResponse.ProductList.Length");
  if(ProductList__length >= 0) {
    ProductList_.resize(ProductList__length);
    for(int i1 = 0; i1 < ProductList__length; i1++) {
      int ProductList_i1_TypeList__length = 0;
      UnmarshallerInt(ProductList_i1_TypeList__length, response_map, "GetProductDefineResponse.ProductList[+"+string_ValueOfInt(i1)+"].TypeList.Length");
      if(ProductList_i1_TypeList__length >= 0) {
        ProductList_[i1].TypeList_.resize(ProductList_i1_TypeList__length);
        for(int i2 = 0; i2 < ProductList_i1_TypeList__length; i2++) {
          int ProductList_i1_TypeList_i2_Fields__length = 0;
          UnmarshallerInt(ProductList_i1_TypeList_i2_Fields__length, response_map, "GetProductDefineResponse.ProductList[+"+string_ValueOfInt(i1)+"].TypeList[+"+string_ValueOfInt(i2)+"].Fields.Length");
          if(ProductList_i1_TypeList_i2_Fields__length >= 0) {
            ProductList_[i1].TypeList_[i2].Fields_.resize(ProductList_i1_TypeList_i2_Fields__length);
            for(int i3 = 0; i3 < ProductList_i1_TypeList_i2_Fields__length; i3++) {
              UnmarshallerString(ProductList_[i1].TypeList_[i2].Fields_[i3], response_map, "GetProductDefineResponse.ProductList[+"+string_ValueOfInt(i1)+"].TypeList[+"+string_ValueOfInt(i2)+"].Fields["+string_ValueOfInt(i3)+"]");
            } // for(int i3 = 0; i3 < ProductList_i1_TypeList_i2_Fields__length; i3++) {
          } // if(ProductList_i1_TypeList_i2_Fields__length >= 0) {

          UnmarshallerString(ProductList_[i1].TypeList_[i2].DataType_, response_map, "GetProductDefineResponse.ProductList[+"+string_ValueOfInt(i1)+"].TypeList["+string_ValueOfInt(i2)+"].DataType");
        } // for(int i2 = 0; i2 < ProductList_i1_TypeList__length; i2++) {
      } // if(ProductList_i1_TypeList__length >= 0) {

      UnmarshallerString(ProductList_[i1].ProductName_, response_map, "GetProductDefineResponse.ProductList["+string_ValueOfInt(i1)+"].ProductName");
    } // for(int i1 = 0; i1 < ProductList__length; i1++) {
  } // if(ProductList__length >= 0) {

  UnmarshallerString(ProductName_, response_map, "GetProductDefineResponse.ProductName");
  UnmarshallerString(DataType_, response_map, "GetProductDefineResponse.DataType");
}


} } // namespace aliyun { namespace Oms {

// end of file 
